//
//  FYWelComeViewController.swift
//  dugeweibo
//
//  Created by pelesys on 16/8/6.
//  Copyright © 2016年 杜方宜. All rights reserved.
//
/**
 用户登录成功会显示一个欢迎界面
 特例：如果用户的系统刚刚升级或者第一次登录，会显示 新特性 界面，而不是 欢迎界面
 
 usingSpringWithDamping 的范围为 0.0f 到 1.0f，数值越小 弹簧 的振动效果越明显
 initialSpringVelocity 则表示初始的速度，数值越大一开始移动越快，初始速度取值较高而时间较短时，会出现反弹情况
 
 使用自动布局开发时，不要再修改添加了约束视图的 frame，否则会引起自动布局系统的错误
 自动布局系统会在每次事件循环中收集约束的变化，并在事件循环结束前根据约束变化计算子视图的 frame，并调用 layoutSubViews 更新所有视图的位置
 如果希望提前更新约束，可以调用 self.view.layoutIfNeeded() 更新当前已经修改过的约束
 
 SnapKit
 创建约束 snp_makeConstraints
 更新约束 snp_updateConstraints
 重新创建约束 snp_remakeConstraints
 */
import UIKit
import SnapKit
import SDWebImage
class FYWelComeViewController: UIViewController {
   
    
    override func loadView() {
        view = backImage
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        setupUI()
    }
    //不要再viewDidLoad方法中去做动画
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        startAnimation()
        
    }
    
    private func startAnimation(){
        //usingSpringWithDamping  弹簧系数  0~1之间  越小越弹
        //initialSpringVelocity 加速度
        //弹簧效果 和加速度之间的关系: 弹簧效果 * 10 = 加速度
      
        //外部改变约束
        self.iconImage.snp.updateConstraints { (make) in
            make.bottom.equalTo(self.view.snp.bottom).offset(-self.view.bounds.height + 180)
        }
        
        //动画效果 由远及近 设计到加速度
        UIView.animate(withDuration: 1.2, delay: 0, usingSpringWithDamping: 0.9, initialSpringVelocity: 9.8, options: [], animations: {
            //闭包内部 强制刷新页面
            //将提前收集到的约束的变化 进行更新
            self.view.layoutIfNeeded()
            
            }) { (_) in
            UIView.animate(withDuration: 0.6, animations: {
                //
                }, completion: { (_) in
                    //发出通知
                    NotificationCenter.default.post(name: Notification.Name(AppSwitchRootViewControler), object: nil)
               })
        }


        
    }
    
    
       //MARK:添加子视图
    private func setupUI(){
        //1.添加子视图
        view.addSubview(iconImage)
        view.addSubview(welcomeLabel)
        //2.设置布局
        iconImage.snp_makeConstraints { (make) in
            make.centerX.equalTo(view.snp_centerX)
            make.bottom.equalTo(view.snp_bottom).offset(-180)
            make.width.equalTo(90)
            make.height.equalTo(90)
        }
        welcomeLabel.snp_makeConstraints { (make) in
            make.top.equalTo(iconImage.snp_bottom).offset(20)
            make.centerX.equalTo(view.snp_centerX)
        }
        //加载视图
        iconImage.sd_setImage(with: FYUserAccountViewModel().headURL as URL?, placeholderImage: UIImage(named: "avatar_default_big"))
        //给图片处理成圆角
        iconImage.layer.cornerRadius = 45
        iconImage.layer.masksToBounds = true
        
    }
    //MARK:-懒加载所有与的视图控件
    //背景视图
    private lazy var backImage : UIImageView = UIImageView(image: UIImage(named:"ad_background"))
    //头像
    private lazy var iconImage : UIImageView = UIImageView()
    //
    private lazy var welcomeLabel:UILabel = {
        let l = UILabel()
        l.textColor = UIColor.lightGray
        l.font = UIFont.systemFont(ofSize: 19)
        l.text = (FYUserAccountViewModel().userName ?? "") + "欢迎归来"
        l.alpha = 0
        l.sizeToFit()
        
        return l
    }()
    
    
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    
}
